from dataclasses import dataclass
from typing import Dict, List
from pathlib import Path
@dataclass
class APIConfig:
    """API 鉴权相关配置"""
    API_KEY: str
    SECRET_KEY: str
    TOKEN_URL: str  # 合并到鉴权配置中

@dataclass
class TaskURLConfig:
    """语音任务接口地址"""
    CREATE_TASK_URL: str
    QUERY_TASK_URL: str

@dataclass
class VoiceParamConfig:
    """语音合成参数配置（新版结构化设计）"""
    # 语音格式配置
    AUDIO_FORMAT: List[str]
    DEFAULT_AUDIO_FORMAT: str
    
    # 语音调节参数（元组表示范围）
    SPEED_VOLUME_PITCH_RANGE: tuple[int, int]
    DEFAULT_SPEED: int
    DEFAULT_VOLUME: int
    DEFAULT_PITCH: int
    
    # 发音人选择参数
    CHOICES_VOICE: List[int]
    DEFAULT_VOICE: int
    
    # 字幕参数
    ENABLE_SUBTITLE_CHOICES: List[int]
    DEFAULT_ENABLE_SUBTITLE: int
    
    # 任务轮询参数
    DEFAULT_TIMES: int
    DEFAULT_DELAY: int

@dataclass
class ResourceDirectory:
    '''资源保存目录'''
    DEFAULT_OUTPUT:Path
    DEFAULT_TASK_JSON:Path

@dataclass
class AppConfig:
    """主配置容器"""
    api: APIConfig
    urls: TaskURLConfig
    voice: VoiceParamConfig
    mime_map: Dict[str, str]  # 直接使用字典简化结构
    resource:ResourceDirectory
    